package domain.controllers.validators;
import domain.commands.ProyectoComando;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.validation.*;



public class ProyectoValidator implements Validator {

	public boolean supports(Class clazz) {
		
		return ProyectoComando.class.isAssignableFrom(clazz);
	}
	public void validate(Object comando, Errors errors) {
                ValidationUtils.rejectIfEmptyOrWhitespace(errors, "nombreProyecto", "nombreProyecto.vacio", null, "Introduzca un valor correcto para el nobre del Proyecto");
                ValidationUtils.rejectIfEmptyOrWhitespace(errors, "fechaIni", "fechaIni.vacio", null, "Introduzca un valor correcto para la Fecha Inicial");
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "fechaFin", "fechaFin.vacio", null, "Introduzca un valor correcto para la Fecha Final");
                ValidationUtils.rejectIfEmptyOrWhitespace(errors, "horasMaximas", "horasMaximas.vacio", null, "Introduzca un valor correcto para las Horas maximas del proyecto");
	
            ProyectoComando pc = (ProyectoComando) comando;      
            String fechaIni = pc.getFechaIni();
          
         if(!fechaIni.equals("")){
           
          if(fechaIni.length() !=10 ){ 
               
              errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha etsa mal, seleccionala del calendario por favor");
           
             
          }else if(!fechaIni.substring(4,5).equals("-")){
                errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha etsa mal, seleccionala del calendario por favor ");
            }else if(!fechaIni.substring(7, 8).equals("-")){
                errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha etsa mal, seleccionala del calendario por favor");
            }else{
                 
               Pattern p = Pattern.compile("[a-zA-Z]");
                   Matcher m = p.matcher(fechaIni);
                if(m.find()){
                   errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha es incorretca, selecione la fecha del calendario por favor");
                }
               
              }
            
            }   
            
            String fechaFin = pc.getFechaFin();
          
         if(!fechaFin.equals("")){
          if(fechaFin.length() !=10 ){ 
               
              errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha etsa mal, seleccionala del calendario por favor");
           
             
          }else if(!fechaFin.substring(4,5).equals("-")){
                errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha etsa mal, seleccionala del calendario por favor ");
            }else if(!fechaIni.substring(7, 8).equals("-")){
                errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha es incorrecta, seleccionala del calendario por favor");
            }else{
                   Pattern p = Pattern.compile("[a-zA-Z]");
                   Matcher m = p.matcher(fechaFin);
                if(m.find()){
                   errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha es incorretca, selecione la fecha del calendario por favor");
              }
               
               
            }
         } 
            
              String horas = pc.getHorasMaximas();  
              if(!horas.equals("")){
                   Pattern p = Pattern.compile("[a-zA-Z]");
                   Matcher m = p.matcher(horas);
                if(m.find()){
                   errors.rejectValue("horasMaximas", "horasMaximas.correcto","Las horas maximas introducida es incorrecta");
              }
              }
              
              String precio = pc.getPrecioHora();  
              if(!precio.equals("")){
                   Pattern p = Pattern.compile("[a-zA-Z]");
                   Matcher m = p.matcher(precio);
                if(m.find()){
                   errors.rejectValue("precioHora", "precioHora.correcto","El precio introducido es incorrecto");
              }
              }
             
              
            
        }

}